//package com.kly.user.task.v2;
//
//import cn.hutool.core.date.DateUnit;
//import cn.hutool.core.date.DateUtil;
//import com.kly.user.enums.ConversationType;
//import lombok.Data;
//import java.util.Date;
//
///**
// * flashchat消息接收方
// */
//@Data
//public class FlashchatRecevier {
//
//
//    /**
//     * 总共发送的消息条数
//     */
//    private Integer totalChatCount;
//    /**
//     * 是否为破冰会话
//     */
//    private Boolean isBrokenIceChat = Boolean.FALSE;
//    /**
//     * 是否为有效会话
//     */
//    private Boolean isEffectiveChat = Boolean.FALSE;
//    /**
//     * 是否为深度会话
//     */
//    private Boolean isDeepChat = Boolean.FALSE;
//    /**
//     * 累计接收到的flashchat数
//     */
//    private Integer receiverFlashChatNum;
//    /**
//     * 接收到的最后一条flashchat时间
//     */
//    private Date receiverLatestFlashChatTime;
//    /**
//     * 注册完成时间
//     */
//    private Date registerTime;
//    /**
//     * 是否付费
//     */
//    private Boolean isPurchase;
//
//    public FlashchatRecevier(Integer totalMsgNum, Integer receiverFlashChatNum, Date receiverLatestFlashChatTime, Date registerTime, Boolean isPurchase) {
//        if (totalMsgNum > ConversationType.FIRST_CONVERSATION.getSize()) {
//            this.isBrokenIceChat = Boolean.TRUE;
//        }
//        if (totalMsgNum > ConversationType.EFFECTIVE_CONVERSATIONS.getSize()) {
//            this.isEffectiveChat = Boolean.TRUE;
//        }
//        if (totalMsgNum > ConversationType.DEEP_CONVERSATIONS.getSize()) {
//            this.isDeepChat = Boolean.TRUE;
//        }
//        this.receiverFlashChatNum = receiverFlashChatNum;
//        this.receiverLatestFlashChatTime = receiverLatestFlashChatTime;
//        this.registerTime = registerTime;
//        this.isPurchase = isPurchase;
//    }
//
//    /**
//     * 时间间隔
//     */
//    public long betweenTimes(Date dt) {
//        if (dt == null) {
//            return 0;
//        }
//        return DateUtil.between(DateUtil.date(), dt, DateUnit.MINUTE);
//    }
//
//    /**
//     * 是否允许发送消息
//     */
//    public Boolean hasSendMsgPermission() {
//        // 完成注册到当前时间间隔
//        final long registerPassedTime = betweenTimes(this.registerTime);
//
//        // 注册完成2min无破冰会话
//        if (registerPassedTime >= 2 && !this.isBrokenIceChat) {
//            if (receiverFlashChatNum < 2) {
//                return Boolean.TRUE;
//            }
//        }
//
//        // 注册完成10min无有效会话
//        if (registerPassedTime >= 10 && !this.isEffectiveChat) {
//            if (receiverFlashChatNum < 3) {
//                // 距离上次下发时间>=2min
//                if (betweenTimes(receiverLatestFlashChatTime) >= 2) {
//                    return Boolean.TRUE;
//                }
//            }
//        }
//
//        // 注册完成30min无深度会话
//        if (registerPassedTime >= 30 && !this.isEffectiveChat) {
//            if (receiverFlashChatNum < 4) {
//                // 距离上次下发时间>=10min
//                if (betweenTimes(receiverLatestFlashChatTime) >= 10) {
//                    return Boolean.TRUE;
//                }
//            }
//        }
//
//        // 注册完成8H无付费记录
//        if (registerPassedTime >= 480 && !this.isPurchase) {
//            if (receiverFlashChatNum < 8) {
//                // 距离上次下发时间>=1h
//                if (betweenTimes(receiverLatestFlashChatTime) >= 60) {
//                    return Boolean.TRUE;
//                }
//            }
//        }
//        return Boolean.FALSE;
//
//    }
//
//
//
//}
